In a cloud computing environment, computing is delivered as a service rather than a product, whereby shared resources, software and information are provided to computers and other devices as a metered service over a network, such as the Internet. In such an environment, computation, software, data access and storage services are provided to users that do not require knowledge of the physical location and configuration of the system that delivers the services.
In a virtualized computer environment, such as may be implemented in a physical cloud computing node of the cloud computing environment, the virtualized computer environment includes a virtual operating system. The virtual operating system includes a common base portion and separate user portions that all run on a physical computer. The physical computer is referred to as a host. The common base portion may be referred to as a hypervisor and each user portion may be called a guest. Each guest is a virtual machine of physical resources of the computer. A guest operating system runs on each guest, and the guest appears to the guest operating system as a real computer. Each guest operating system may host one or more virtual machines.
The cloud computing environment handles many types of “jobs,” where a job refers to a set of functions that need to be completed in order to a accomplish a given task, such as setting-up a virtual machine, populating data on a virtual machine, configuring a virtual machine, linking multiple virtual machines together, etc. Currently, these jobs are assigned a priority to be executed solely based on resource utilization, such as the utilization of the central processing unit, the memory and the disk (i.e., disk consumption). The priority assigned to these jobs does not take into consideration the dynamic nature of the cloud computing environment or the context and environmental considerations involving the job. As a result, the priority assigned to these jobs may not accurately reflect the true priority or importance of the job thereby causing the jobs to be executed in an inefficient manner.